Recent progress in electronic devices requires farther effort in developing higher reliability flash memory. Generally, a flash memory is a non-volatile semiconductor memory device (NVM) that can be electrically erased and reprogrammed. A flash memory has a finite number of program erase cycles, typically written as P/E cycles. Commercially available flash products from Beginning-Of-Life (BOL) to End-Of-Life (EOL) typically withstand around 80,000-100,000 P/E cycles before the wear begins to deteriorate the integrity of storage.
Wear-out management techniques are implemented to further extend the life of a flash memory. For example, in order to wear-level a device, a block-level interface is implemented to perform writes to a different cell block each time. Typically, a flash controller keeps count of P/E cycles for memory blocks and based on the number of P/E cycles, determines how to distribute a write to a different memory block with less P/E cycles. Typically, a flash controller keeps count of P/E cycles for memory blocks and based on the number of P/E cycles, determines how to distribute a write to a different memory block with less P/E cycles.
The counts of P/E cycles for each memory block is incremented with each erase cycle and is saved in a dedicated area of the flash memory. However, this requires a larger device size, and a large NVM storage area is needed to keep track of memory blocks. For example, to keep counts of 80,0000-100,000 P/E cycles, 17 bits are required. In addition, the storage area for the counts tends to also wear out faster as the erase count update happens at every erase operation.